/**
 * 系统后台数据库连接配置JS-systemDataSource.jsp
 */

// 项目路径
var strPath = window.document.location.pathname;
//var postPath = strPath.substring(0, strPath.substr(1).indexOf('/') + 1);
var postPath = "/gdp";
var editStart = 1;// 1添加、2修改
var dd = 0;
$(function() {
	$("#ssss").hide();
	// 数据列表
	$("#tb_dataList").bootstrapTable({
		url : postPath + '/accesscontrol/appcode/getDataPage',
		undefinedText : '-',
		pagination : true, // 分页
		striped : true, // 是否显示行间隔色
		queryParams : queryParams,
		cache : false, // 是否使用缓存
		pageList : [ 5, 10, 20 ],
		toolbar : "",// 指定工具栏
		showColumns : false, // 显示隐藏列
		showRefresh : false, // 显示刷新按钮
		uniqueId : "appId", // 每一行的唯一标识
		sidePagination : "server", // 服务端处理分页
		responseHandler: function (res) {
			return {
				"total": res.data.total,//总页数
				"rows": res.data.rows   //数据
			};
		},
		columns : [ {
			field : 'state',
			checkbox : true,
			align : 'center',
			valign : 'middle'
		}, {
			title : 'AppCode',
			field : 'appCode', // 字段
			align : 'left', // 对齐方式（左 中 右）
			halign:'center',
			valign : 'middle', //
			sortable : false
		}, {
			title : '调用方名称',
			field : 'appName', // 字段
			align : 'left', // 对齐方式（左 中 右）
			halign:'center',
			valign : 'middle', //
			sortable : false
		}, {
			title : '管理单位',
			field : 'department',
			align : 'left', // 对齐方式（左 中 右）
			halign:'center',
			valign : 'middle',
			sortable : false
		}, {
			title : 'IP地址',
			field : 'ip',
			align : 'center',
			valign : 'middle',
			sortable : false
		}, {
			title : '联系人',
			field : 'contacts',
			align : 'center',
			valign : 'middle',
			sortable : false
		}, {
			title : '联系电话',
			field : 'phone',
			align : 'left',
			halign: 'center',
			valign : 'middle',
			sortable : false
		}, {
			title: '服务数量',
			field: 'serviceCount',
			align: 'center',
			valign: 'middle',
			sortable: false
		},
		// 	{
		// 	title : '备注',
		// 	field : 'remark',
		// 	align : 'left', // 对齐方式（左 中 右）
		// 	halign:'center',
		// 	valign : 'middle',
		// 	sortable : false,
		// 	cellStyle: function (value, row, index) {
		// 		return {
		// 			css: {
		// 				"min-width": "120px",
		// 				"white-space": "nowrap",
		// 				"text-overflow": "ellipsis",
		// 				"overflow": "hidden",
		// 				"max-width": "120px"
		// 			}
		// 		}
		// 	},
		// 	formatter: function (value, row, index) {
		// 		return handColumnTip(value);
		// 	}
		// },

			{
			title : '操作人',
			field : 'createdUser',
			align : 'center',
			valign : 'middle',
			sortable : false
			}, 
			{
				title: '操作时间',
				field: 'createdTime',
				align: 'center',
				valign: 'middle',
				sortable: false
			},

			{
				title: '操作',
				align: 'center',
				valign: 'middle',
				sortable: false,
				formatter: function (value, row, index) {
					var strtd = "";
					strtd += "<a href='javascript:;' title='分组管理' onclick='updatepClick(\"" + row.appId + "\",);' class='btn btn-default btn-sm'><i class='glyphicon glyphicon-th-list'></i> </a> ";
					return strtd;
				}
			}
		]
	});

	// 查询操作
	$("#btn_Search").click(function() {
		$("#tb_dataList").bootstrapTable('refresh');
	});

	// 刷新操作
	$("#btn_ref").click(function() {
		$("#tb_dataList").bootstrapTable('refresh'); 
	});

	// 删除数据
	$("#btn_del").click(function() {
		var row = $('#tb_dataList').bootstrapTable('getSelections');
		if (row == null || row == "") {
			showMsg("请至少选择一行!", "warning");
			//showMsg("请选择一行!", "warning");
			return;
		}
		var deleteFunction =  function(result) {
			if (result == false)
				return;
			var keys = "";
			$.each(row, function(i, e) {
				keys += e.appId + ",";
			});
			keys = keys.substring(0, keys.length - 1);
			$.ajax({
				url : postPath + '/accesscontrol/appcode/delete',
				type : 'get',
				data : {
					id : keys
				},
				success: function (res) {
					if (res && res.success == true) {
						showMsg("删除成功!", "success");
						$('#tb_dataList').bootstrapTable('refresh');
					} else {
						showMsg("删除失败，请稍后重试！", "error");
					}
				},
				error : function() {
					showMsg("删除失败，请稍后重试！", "error");
				}
			});
		};

		confirmDelete("确定删除当前选中记录？", deleteFunction);
	});

	// 添加操作
	$("#btn_add").click(function() {
		$("#serverguid").attr("readonly",false);
		$(".modal-title").text("新增");
		cleanContent();
		$("#EditContent").modal('show');
		editStart = 1;
	});

	// 修改操作
	$("#btn_edit").click(function() {
		$(".modal-title").text("编辑");
		cleanContent();
		var row = $('#tb_dataList').bootstrapTable('getSelections');
		if (row == null || row == "") {
			// bootbox.alert("请选择一行!");
			showMsg("请选择一行!", "warning");
			return;
		}
		dd  = row[0].appId;
		$.ajax({
			type : 'get',
			url : postPath + '/accesscontrol/appcode/getOne',
			async : false,
			data : {
				id : row[0].appId
			},
			success: function (res) {
				if (res.success) {
					var obj = res.data;
					$("#appId").attr("readonly", true);
					$("#appId").val(obj.appId);
					$("#appCode").attr("readonly", true);
					$("#appCode").val(obj.appCode);
					$("#appName").val(obj.appName);
					$("#department").val(obj.department);
					$("#ip").val(obj.ip);
					$("#contacts").val(obj.contacts);
					$("#phone").val(obj.phone);
					$("#remark").val(obj.remark);
					editStart = 2;
				}
			}
		});
		$("#EditContent").modal('show');

	});

	// 保存数据
	$("#btn_save").click(function() {
		var validataResult = validateData();
		if (validataResult) {
			var data = "";
			if(editStart == 1){
				data = {
					"appCode" : $("#appCode").val(),
					"appName" : $("#appName").val(),
					"department" : $("#department").val(),
					"ip" : $("#ip").val(),
					"contacts" : $("#contacts").val(),
					"phone" : $("#phone").val(),
					"remark" : $("#remark").val(),
				};
			}else{
				data = {
					"appId": dd,
					"appCode" : $("#appCode").val(),
					"appName": $("#appName").val(),
					"department": $("#department").val(),
					"ip": $("#ip").val(),
					"contacts": $("#contacts").val(),
					"phone": $("#phone").val(),
					"remark": $("#remark").val(),
				};
			}
			var editurl = "";
			if (editStart == 1) {
				editurl = postPath + '/accesscontrol/appcode/insert';
			} else if (editStart == 2) {
				editurl = postPath + '/accesscontrol/appcode/update';
			}
			$.ajax({
				type : "POST",
				url : editurl,
	            data : JSON.stringify(data),
	            dataType: 'json',
	            contentType:'application/json;charset=UTF-8',
				success : function(res) {
					if (res.success == true) {
						// bootbox.alert("保存成功!");
						showMsg("保存成功!", "success");
						$('#tb_dataList').bootstrapTable('refresh');
						$("#EditContent").modal('hide');
					} else {
						// bootbox.alert("保存失败,请刷新后重试!");
						showMsg("保存失败,请刷新后重试!", "error");
					}
				}
			});
		}
	});
});

/*
* 处理列提示
* */
function handColumnTip(value) {
	if (!value) return null;
	var span = document.createElement('span');
	span.setAttribute('title', value);
	span.innerHTML = value;
	return span.outerHTML;
}

/** 查询条件与分页数据 */
function queryParams(pageReqeust) {
	var temp = {
		order : pageReqeust.order,
		pageNum : pageReqeust.offset / pageReqeust.limit + 1,
		pageSize : pageReqeust.limit,
	};
	if($("#searchAppCode").val()){
		temp.appCode =$("#searchAppCode").val();
	}
	if($("#searchAppName").val()){
		temp.appName =$("#searchAppName").val();
	}
	if($("#searchDepartment").val()){
		temp.department =$("#searchDepartment").val();
	}
	return temp;
}

// 内容初始化
function cleanContent() {
	// 维护内容清空
	$("#appCode").val("");
	$("#appCode").attr("readonly", false);
	$("#appName").val("");
	$("#department").val("");
	$("#ip").val("");
	$("#contacts").val("");
	$("#phone").val("");
	$("#remark").val("");

	// 验证信息清空
	$("#valide_appCode").html("");
	$("#valide_appName").html("");
	$("#valide_department").html("");
	$("#valide_ip").html("");
	$("#valide_contacts").html("");
	$("#valide_phone").html("");
	$("#valide_remark").html("");
}

// 验证表单内容
function validateData() {
	if ($("#appCode").val() == "") {
		$("#valide_appCode").html("AppCode不能为空!");
		return false;
	} else {
		$("#valide_appCode").html("");
	}
	if ($("#appName").val() == "") {
		$("#valide_appName").html("调用方名称不能为空!");
		return false;
	} else {
		$("#valide_appName").html("");
	}

	//验证AppCode是否重复
	if(editStart == 1){
		var re = 0;
		var appCode = $("#appCode").val();
		$.ajax({
			type : 'get',
			url : postPath + '/accesscontrol/appcode/getOneByAppCode',
			async : false,
			data : {
				appCode : appCode
			},
			success: function (res) {
				if (res && res.success == true && res.data.appCode) {
					re = 1;
				}
			}
		});
		if (re != 0) {
			$("#valide_appCode").html("该AppCode在表中已存在");
			return false;
		} else {
			$("#valide_appCode").html("");
		}
	}
	return true;
}

function showMsg(text, icon) {
	$.toast().reset('all');
	$.toast({
		text: text,
		icon: icon,
		showHideTransition: 'fade',
		allowToastClose: true,
		hideAfter: 1500,
		stack: false,
		position: 'top-right',
		textAlign: 'left',
		loader: true,
		loaderBg: '#9ec600',
	});
}

function updatepClick(appId) {
	let url = encodeURI("applicationGroup/index?appId=" + appId + "&opt=editGroup");
	$(window.parent.document).find("#sysIframe").attr("src", url);
}


function confirmDelete(message, confirmFunction){
    var messageObj = {
        title: '提示',
        message: message ,
        callback: confirmFunction,
		buttons: {
			confirm: {
				label: "确定"
			},
			cancel: {
				label: "取消"
			}
		},
    }
    bootbox.confirm(messageObj);
}
